package com.stefanini.pe.bbva.mbl.in.dao;

import model.mantenimiento.UsuariosModel;

import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import java.math.BigDecimal;
import org.apache.log4j.Logger;
import java.util.List;
import java.sql.Timestamp;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import com.stefanini.pe.bbva.mbl.in.listeners.SpringInit;
import java.util.HashMap;
import com.stefanini.pe.bbva.mbl.carga.in.to.CargaConfig;
import com.stefanini.pe.bbva.mbl.carga.in.to.ConfiguracionArchivoEnvioCobro;
import com.stefanini.pe.bbva.mbl.carga.in.to.FormatoArchivo;
import com.stefanini.pe.bbva.mbl.carga.in.to.Usuarios;
import com.stefanini.pe.bbva.mbl.in.dao.iface.CargaConfigDAO;
import com.stefanini.pe.bbva.mbl.in.dao.iface.ConfiguracionArchivoEnvioCobroDAO;
import com.stefanini.pe.bbva.mbl.to.ConfiguracionArchivoEnvioCobroTO;

/*+----------------------------------------------------------------------------+
 | SISTEMA : Leasing                                                          |
 | MODULO  : Cobranzas                                                        |
 | AUTOR   : euceda                                                           |
 | CREACION: (Ver:1.0.0) 08/08/2012 16:36:31                                  |
 | DESCRIP.: Clase donde se implementa los metodos de accesos a los SqlMaps   |
 +----------------------------------------------------------------------------+*/
public class ConfiguracionArchivoEnvioCobroDAOImpl extends
		SqlMapClientDaoSupport implements ConfiguracionArchivoEnvioCobroDAO {
	private static final Logger logger = Logger
			.getLogger(ConfiguracionArchivoEnvioCobroDAOImpl.class);
	Usuarios usu = null;

	public ConfiguracionArchivoEnvioCobroDAOImpl() {
		super();
	}

	public boolean updateConfiguracion(ConfiguracionArchivoEnvioCobro objeto) {
		boolean res = false;
		System.out.println("Ingreso al Map");
		HashMap<String, Object> hParametros = new HashMap<String, Object>();

		hParametros.put("IN_ID_CONFIG_ARC_ENV_COBRO", objeto.getId_Config_Arc_Env_Cobro());
		hParametros.put("IN_PERIODO", objeto.getPeriodoStr());
		hParametros.put("IN_TIPO_CONFIGURACION", objeto.getTipo_Configuracion());
		hParametros.put("IN_HORA", objeto.getHora());
		hParametros.put("IN_CORREO_PROC_EXITO", objeto.getCorreo_Proc_Exito());
		hParametros.put("IN_CORREO_PROC_ERROR", objeto.getCorreo_Proc_Error());
		hParametros.put("IN_FORMATO_FECHA", objeto.getFormato_Fecha());
		hParametros.put("IN_COD_REG_MODI", objeto.getUsuario());

		try {
			this.getSqlMapClientTemplate().update("CONFIG_ARC_ENV_COBRO.updateConfiguracion",hParametros);
			res = true;
		} catch (Exception ex) {
			logger.info("Error en updateConfiguracion (CONFIG_ARC_ENV_COBRO_SqlMap.xml) : "
							+ ex.getMessage());
		}
		return res;
	}

	public boolean updateFormato(FormatoArchivo obj) {
		boolean res = false;
		System.out.println("Ingreso al Map");
		HashMap<String, Object> hParametros = new HashMap<String, Object>();

		hParametros.put("IN_ID_FORMATO_ARCVHIVO", obj.getIdFormatoArchivo());
		hParametros.put("IN_SUFIJO", obj.getSufijo());
		hParametros.put("IN_PREFIJO", obj.getPrefijo());
		hParametros.put("IN_ID_CODIGO", obj.getId_codigo());
		hParametros.put("IN_COD_REG_MODI", obj.getUsuario());
		try {
			this.getSqlMapClientTemplate().update("CONFIG_ARC_ENV_COBRO.updateFormato",hParametros);
			res = true;
		} catch (Exception ex) {
			logger.info("Error en updateFormato (CONFIG_ARC_ENV_COBRO_SqlMap.xml) : "
							+ ex.getMessage());
		}
		return res;
	}

	public ConfiguracionArchivoEnvioCobro datosConfiguracion(
			BigDecimal idConfiguracion) {
		ConfiguracionArchivoEnvioCobro datosConfiguracion = new ConfiguracionArchivoEnvioCobro();
		System.out.println("Ingreso al Map");
		HashMap<String, Object> hParametros = new HashMap<String, Object>();

		hParametros.put("IN_ID_CONFIG_ARC_ENV_COBRO", idConfiguracion);

		try {
			this.getSqlMapClientTemplate().queryForList("CONFIG_ARC_ENV_COBRO.datosConfiguracion", hParametros);
			List<ConfiguracionArchivoEnvioCobro> datos = (List<ConfiguracionArchivoEnvioCobro>) hParametros.get("OUT_RESULT_SET");
			if(datos!=null && datos.size()>0){
				datosConfiguracion = datos.get(0);
			}
		} catch (Exception ex) {
			logger.info("Error en updateConfiguracion (CONFIG_ARC_ENV_COBRO_SqlMap.xml) : "
							+ ex.getMessage());
		}
		return datosConfiguracion;
	}

	public FormatoArchivo datosFormatoArchivo(BigDecimal idConfiguracion) {
		FormatoArchivo datosFormato = new FormatoArchivo();
		System.out.println("Ingreso al Map");
		HashMap<String, Object> hParametros = new HashMap<String, Object>();

		hParametros.put("IN_ID_FORMATO_ARCVHIVO", idConfiguracion);

		try {
			this.getSqlMapClientTemplate().queryForList("CONFIG_ARC_ENV_COBRO.datosFormato", hParametros);
			List<FormatoArchivo> datos = (List<FormatoArchivo>) hParametros.get("OUT_RESULT_SET");
			if(datos!=null && datos.size()>0){
				datosFormato = datos.get(0);
			}
		} catch (Exception ex) {
			logger.info("Error en updateConfiguracion (CONFIG_ARC_ENV_COBRO_SqlMap.xml) : "
							+ ex.getMessage());
		}
		return datosFormato;
	}

}
